home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / c / restracklib_0_2.lha / ResTrackLib / allocmem.c < prev    next >
C/C++ Source or Header  |  1994-07-31  |  2KB  |  94 lines

  1. /* allocmem.c */
  2.  
  3. #include <stdio.h>
  4. #include <exec/memory.h>
  5. #include <clib/exec_protos.h>
  6. #ifdef REGARGS
  7. #   include <pragmas/exec_pragmas.h>
  8. #endif
  9.  
  10. #include "restrack_intern.h"
  11.  
  12.  
  13. /*****************************************************************************
  14.  
  15.     NAME
  16.     __rtl_AllocMem -- allocate memory
  17.  
  18.     SYNOPSIS
  19.     APTR __rtl_AllocMem (ULONG, ULONG, const char *, int);
  20.  
  21.     FUNCTION
  22.     Stub for AllocMem().
  23.  
  24.     HISTORY
  25.     23. Jul 1994    Optimizer   created
  26.  
  27. ******************************************************************************/
  28.  
  29. APTR __rtl_AllocMem (ULONG size, ULONG flags, const char * file, int line)
  30. {
  31.     APTR mem;
  32.  
  33.     if ( (mem = AllocMem (size, flags)) )
  34.     CHECK_ADD_RN(RTL_EXEC,RTLRT_AllocMem,mem,size)
  35.  
  36.     return (mem);
  37. } /* __rtl_AllocMem */
  38.  
  39.  
  40. /*****************************************************************************
  41.  
  42.     NAME
  43.     __rlt_FreeMem
  44.  
  45.     SYNOPSIS
  46.     void __rtl_FreeMem (APTR mem, ULONG size, const char * file, int line);
  47.  
  48.     FUNCTION
  49.     Stub for FreeMem(). Frees a block of memory allocated by
  50.     __rlt_AllocMem().
  51.  
  52.     HISTORY
  53.     23. Jul 1994    Optimizer   created
  54.  
  55. ******************************************************************************/
  56.  
  57. void __rtl_FreeMem (APTR mem, ULONG size, const char * file, int line)
  58. {
  59.     ResourceNode * node;
  60.  
  61.     if ((node = FindResourceNode1 (mem)) )
  62.     {
  63.     if (node->Resource != RTLRT_AllocMem)
  64.     {
  65.         fprintf (stderr, "ERROR: FreeMem at %s:%d called for\n",
  66.             file, line);
  67.         PrintResourceNode (node);
  68.     }
  69.     else
  70.     {
  71.         if (node->Long != size)
  72.         {
  73.         fprintf (stderr, "ERROR: FreeMem at %s:%d called with wrong size\n",
  74.                 file, line);
  75.         }
  76.  
  77.         FreeMem (mem, node->Long);
  78.         RemoveResourceNode (node);
  79.     }
  80.     }
  81.     else
  82.     CHECK_RT_ERROR_OR_CALL2(RTL_EXEC,FreeMem,"(%p, %ld)",mem,size,FreeMem (mem, size))
  83.  
  84. } /* __rlt_FreeMem */
  85.  
  86.  
  87. NRT_RET(APTR,AllocMem,(ULONG size, ULONG flags),(size, flags))
  88. NRT(FreeMem,(APTR block, ULONG size),(block,size))
  89.  
  90.  
  91. /******************************************************************************
  92. *****  ENDE allocmem.c
  93. ******************************************************************************/
  94.